package main

import "fmt"

// a) 写一个 Sum() 函数，传入参数为一个 float32 数组成的数组 arrF，返回该数组的所有数字和。
// 如果把数组修改为切片的话代码要做怎样的修改？如果用切片形式方法实现不同长度数组的的和呢？
// b) 写一个 SumAndAverage() 方法，返回两个 int 和 float32 类型的未命名变量的和与平均值。

func Sum(arrF [2]float32) (s float32) {
	for _, f := range arrF {
		s += f
	}
	return
}

func SumSlice(arrF []float32) (s float32) {
	for _, f := range arrF {
		s += f
	}
	return
}

func SumAndAverage(arr []int) (int, float32) {
	var sum int

	for _, item := range arr {
		sum += item
	}
	return sum, float32(sum / len(arr))
}

func main() {
	arr := [2]float32{2.0, 4.0}
	fmt.Println("[2]float32 sum: ", Sum(arr))
	fmt.Println("[]float32 sum: ", SumSlice(arr[:]))
	arrInt := []int{1, 3, 5, 7}
	sum, avg := SumAndAverage(arrInt)
	fmt.Println("sum and average: ", sum, avg)
}
